package cn.com.shopec.erp.base.service;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

import cn.com.shopec.erp.base.entity.LogisticsInfo;
import cn.com.shopec.erp.base.vo.LogisticInfoVo;
import cn.com.shopec.erp.common.page.PageFinder;
import cn.com.shopec.erp.common.page.PageQuery;


public interface ILogisticInfoService {
	

	/**
	 * 分页查询审核金额设置
	 * 
	 * @param AuditSettingVo
	 * @return PageFinder<AuditSettingVo>
	 * @throws Exception
	 */
	public PageFinder<LogisticsInfo> getPageFinderLogisticInfo(LogisticsInfo logisticsInfo,PageQuery pageQuery);

	/**
	 * 新增物流基本信息
	 * @param logisticsInfo
	 * @return
	 * @throws Exception 
	 */
	public LogisticsInfo addLogisticInfo(LogisticsInfo logisticsInfo) throws Exception;
	
	/**
	 * 修改物流基本信息
	 * @param logisticsInfo
	 * @return
	 * @throws Exception 
	 */
	public LogisticsInfo updateLogisticsInfo(LogisticsInfo logisticsInfo) throws Exception;
	
	/**
	 * 根据code获取物流信息
	 * @param code
	 * @return
	 */
	public LogisticsInfo getLogisticsInfoByCode(String code);
	
	
	/**
	 * 查询出所有物流信息
	 * @param vo
	 * @return
	 * @throws NoSuchMethodException 
	 * @throws InvocationTargetException 
	 * @throws IllegalAccessException 
	 */
	public List<LogisticInfoVo> getAllLogisticInfo(LogisticInfoVo vo) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException;

	/**
	 * 删除物流
	 * @param code
	 * @throws Exception 
	 */
	public void delLogisticInfo(String code) throws Exception;
	 
      
    /**  
     * 验证物流编号是否存在
     * @param logisticId
     * @return
     */
    public List<LogisticsInfo> getLogisticInfoche(String logisticId);
    
    /**  
     * 验证物流名称是否存在
     * @param logisticId
     * @return
     */
    public List<LogisticsInfo> getLogisticsByName(String logisticsName);
    /**
     * 根据物流编码获取物流VO
     * @param logisticCode
     * @return
     * @throws Exception 
     */
	public LogisticInfoVo getLogisticByLogisId(String logisticCode) throws Exception;
	
	
}
